package 每日一题OJ;

/**
 * @author shy_black
 * @date 2019/9/14 22:56
 * @Description:
 *  从列的角度计算，每次计算当前列的左右俩边最高的列，比较出较小的一列，如果min 大于当前列，说明当前列可以接雨水，min-arr[i]
 *  循环
 */
public class _42_接雨水 {
    public int trap(int[] height) {

        int max = 0;
        if(height.length == 0) {
            return 0;
        }
        for(int i = 1;i < height.length-1;i++) {
            int left = 0;
            for(int j = i-1;j >= 0;j--) {
                if(height[j] > left) {
                    left = height[j];
                }
            }

            int right = 0;
            for(int k = i+1;k < height.length;k++) {
                if(height[k] > right) {
                    right = height[k];
                }
            }
            int min = left < right ? left : right;
            if(min > height[i]) {
                max += (min - height[i]);
            }

        }

        return max;
    }
}